﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SMA.GENTEv1;
using Telerik.Web.UI;

public partial class Protegidos_Empresas__popup_eppIncluirHistAcoesJudiciais : PageBase 
{
    private const string dbPath = "arq/";
    private int idReclamante = 0;
    private int idHistoricoProcesso = 0;
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["IdReclamante"] != null)
            idReclamante = int.Parse(Request.QueryString["IdReclamante"].ToString());

        if (!IsPostBack)
        {
            OcultaCampos(true);
            CarregarDadosProcesso();
            CarregarDadosHistorico();
        }
    }

    #region Eventos
    protected void btnGravar_Click(object sender, EventArgs e)
    {
        try
        {
            BindValidResults();
        }
        catch (Exception ex)
        {
            lblResultado.Text = ex.Message;
        }
    }

    protected void btnFechar_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
    }
    #endregion

    #region Métodos
    private void CarregarDadosProcesso()
    {
        AcoesLegaisReclamante reclamante = new AcoesLegaisReclamante(idReclamante, true, false, true, true);
        txtNumProcesso.Text = reclamante.Processo[0].NumProcesso;
        rdpDataAbertura.SelectedDate = reclamante.Processo[0].DtAberturaProc;
        rdpDataTermino.SelectedDate = reclamante.Processo[0].DtFimProcesso;
        txtReclamante.Text = reclamante.PessoaReclamante.Nome;

        txtNumProcesso.Enabled = false;
        rdpDataAbertura.Enabled = false;
        rdpDataTermino.Enabled = false;
        txtReclamante.Enabled = false;
    }

    private void CarregarDadosHistorico()
    {
        if (idHistoricoProcesso != 0)
        {
            AcoesLegaisHistoricoProcesso historico = new AcoesLegaisHistoricoProcesso(idHistoricoProcesso, true, true, false, false, true);
            txtNovoHistorico.Text = historico.Obs;
            rdpProcessoFinalizado.SelectedDate = historico.Reclamante.DtFimProcesso;

            if ((historico.Imagem.Path != string.Empty) && (historico.Imagem.Path != null))
            {
                FileInfo fileinfo = new FileInfo(historico.Imagem.Path);
                lblArquivo.Text = fileinfo.Name;
            }
        }
    }

    private void OcultaCampos(bool oculta)
    {
        trResultado.Visible = !oculta;
    }

    private void ExibeResultado()
    {
        trSeleciona.Visible = false;
        trResultado.Visible = true;
        btnGravar.Visible = false;

        trNumProcesso.Visible = false;
        trDataAbertura.Visible = false;
        trDataTermino.Visible = false;
        trReclamante.Visible = false;
        trTituloReclamante.Visible = false;
        trNovoHistorico.Visible = false;
        trProcessoFinalizado.Visible = false;
    }

    private void BindValidResults()
    {
        string nameFile = Salvar();

        if (RadUpload1.UploadedFiles.Count > 0)
        {
            foreach (UploadedFile validFile in RadUpload1.UploadedFiles)
            {
                string targetFolder = Server.MapPath("~/Arq");
                validFile.SaveAs(Path.Combine(targetFolder, nameFile), true);
            }

            labelNoResults.Visible = false;
            repeaterResults.Visible = true;
            repeaterResults.DataSource = RadUpload1.UploadedFiles;
            repeaterResults.DataBind();
        }
        else
        {
            labelNoResults.Visible = true;
            repeaterResults.Visible = false;
        }

        ExibeResultado();

        Response.Redirect("eppReplicarHistAcoesJudiciais.aspx?IdHistoricoProcesso=" + idHistoricoProcesso + "&IdReclamante=" + idReclamante);
    }

    protected string Salvar()
    {
        AcoesLegaisHistoricoProcesso historico = new AcoesLegaisHistoricoProcesso();

        historico.IdHistoricoProcesso = idHistoricoProcesso;
        historico.Processo = new AcoesLegaisProcesso();
        historico.Processo.Organizacao = new Organizacao(IdPrestador, false, false);
        if (rdpDataHistorico.SelectedDate != null)
            historico.DtHistorico = DateTime.Parse(rdpDataHistorico.SelectedDate.ToString());
        historico.Obs = txtNovoHistorico.Text;
        historico.DtHoraCadastro = DateTime.Now;
        historico.PessoaCadastro = new Pessoa(7);
        historico.EmailEnviado = "";
        if (RadUpload1.UploadedFiles.Count > 0)
        {
            historico.Imagem = new AcoesLegaisImagemProcesso();
            historico.Imagem.Descricao = "Imagem";
            historico.Imagem.Path = dbPath;
        }
        historico.Salvar(idReclamante, rdpProcessoFinalizado.SelectedDate);

        string nomearquivo = "";
        if (RadUpload1.UploadedFiles.Count > 0)
        {
            FileInfo _fileInfo = new FileInfo(historico.Imagem.Path);
            nomearquivo = _fileInfo.Name;
        }
        else
        {
            nomearquivo = "";
        }
        idHistoricoProcesso = historico.IdHistoricoProcesso;

        return nomearquivo;
    }
    #endregion
}
